#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//void find_num(int arr[], int sz, int* px, int* py)
//{
//	int i = 0;
//	int pos = 0;
//	int num = 0;
//	for (i = 0; i < sz; i++)
//	{
//		num ^= arr[i];
//	}
//	for (i = 0; i < 32; i++)
//	{
//		if (1 == ((num >> i) & 1))
//		{
//			pos = i;
//			break;
//		}
//	}
//	for (i = 0; i < sz; i++)
//	{
//		if (((arr[i] >> pos) & 1) == 1)
//			*px ^= arr[i];
//		else
//			*py = arr[i];
//	}
//}
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,1,2,3,4,6 };
//	int x = 0;
//	int y = 0;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	find_num(arr, sz, &x, &y);
//	printf("%d %d\n", x, y);
//	return 0;
//}


int main()
{
	int y = 0, m = 0;
	int days[]={0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
	while(scanf("%d%d",&y,&m)!=EOF)
	{
		int day = days[m];
		if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
		{
			if (m == 2)
				day += 1;
		}
		printf("%d\n", day);
	}
	return 0;
}